# -*-coding: utf-8 -*-

##
 # Esse arquivo é parte do Software Encainador
 # 
 # Copyright (C) 2011-$AnoCorrente$ Dyego Ítallo Silva Ferreira
 # Copyright (C) 2011-$AnoCorrente$ Marcos José Ferreira Neto
 # Copyright (C) 2011-$AnoCorrente$ Eduardo Moreira Barbosa
 # Copyright (C) 2011-$AnoCorrente$ Rogério Silva dos Santos
 # 
 # Encainador é um Software Livre: Você pode redistribuí-lo e/ou modificá-lo
 # de acordo com os termos da Licença Pública Geral GNU (GNU General Public License)
 # conforme publicada pela Free Software Foundation (FSF). Essa permissão é atribuída
 # na versão 3 da Licença, ou (na sua opinião) qualquer versão.
 # 
 # Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa,
 # se não, escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 # Boston, MA  02110-1301  USA
 # 
 # Se você tiver alguma dúvida e/ou quiser dar suporte ao desenvolvimento, favor entrar em
 # contato nos e-mails <dyegoitallo@gmail.com>, <marcosjfneto@gmail.com>, <barbosa.edrd@gmail.com>, <roger.silva23@hotmail.com>.
##

L, I, R, F, X, = 2, 3, 4, 5, 6,

dic_fases = {
# fase 1
             1: [ [  R,  L,  X,  L,  L,  0,  L,  I,  L,  I,
                     I,  L,  L,  L,  L,  0,  0,  L,  L,  I,
                     X,  L,  I,  X,  L,  I,  I,  L,  L,  L,
                     L,  L,  X,  I,  L,  X,  L,  L,  L,  0,
                     I,  L,  X,  I,  X,  X,  X,  X,  L,  I,
                     L,  I,  X,  I,  I,  L,  L,  F,  X,  L ],

                  [ 16, 11, 12, 20, 21, 22, 32, 34, 44, 45,
                    46, 55, 56],

                  [  0, -2, -3, -1,  0,  0,  0, -1, -3,  0,
                     0,  0, -1,  0],

                    100 ],

# fase 2

             2: [ [  R,  0,  L,  I,  I,  I,  L,  I,  I,  L,
		     L,  I,  L,  0,  I,  0,  L,  0,  0,  L,
		     I,  L,  I,  0,  I,  L,  L,  0,  I,  L,
		     I,  L,  L,  L,  L,  I,  L,  L,  I,  L,
		     L,  I,  0,  I,  L,  L,  L,  I,  L,  L,
		     L,  L,  L,  L,  I,  L,  0,  L,  L,  F ],

                  [ 10, 11, 12, 22, 32, 33, 43, 53, 54, 55,
                    45, 46, 36, 37, 47, 57, 58, 48, 49 ],

                  [ -1, -1, -3,  0, -1, -3,  0, -1, -1,  0,
                    -2,  0, -2, -3,  0, -1,  0, -2, -3 ],

                  100 ],
# fase 3
             3: [ [  I,  0,  L,  I,  L,  L,  L,  L,  L,  R,
                     0,  L,  L,  X,  X,  X,  L,  L,  L,  L,
	             I,  I,  I,  0,  0,  0,  0,  0,  0,  0,
	             I,  I,  L,  L,  L,  I,  L,  L,  I,  L,
	             L,  L,  L,  X,  X,  L,  I,  L,  X,  L,
	             L,  L,  X,  X,  I,  L,  L,  I,  L,  F ],

                  [ 10, 20, 19,  9,  8, 18, 17,  7,  6, 16,
                    15,  5,  4,  3, 13, 12, 22, 32, 42, 43,
                    53, 54, 44, 45, 35, 36, 37, 47, 57, 58,
                    59, 49, 50 ],

                  [  0, -1, -3, -2,  0, -1, -3, -2,  0,  0,
                    -3, -1, -2,  0, -2,  0,  0, -1, -3,  0,
                     0,  0,  0, -2, -1, -3,  0, -1, -1,  0,
                     0, -3, -1 ],

                  100 ],
# fase 4
             4: [ [  0,  X,  L,  0,  0,  0,  L,  L,  X,  R,
	             L,  X,  I,  I,  X,  X,  X,  L,  L,  L,
                     L,  L,  I,  0,  0,  X,  X,  X,  0,  0,
	             X,  I,  L,  I,  L,  X,  I,  X,  I,  L,
	             X,  I,  L,  L,  X,  L,  L,  L,  L,  L,
	             X,  X,  L,  L,  I,  I,  L,  L,  X,  F],

                  [ 10, 20, 19,  9,  8, 18, 17, 27, 28, 38,
                    37, 36, 46, 45, 35, 34, 33, 23, 13,  3,
                     2, 12, 11, 21, 22, 32, 42, 52, 53, 43,
                    44, 54, 55, 56, 57, 47, 48, 58, 59, 49,
                    50 ],

                  [  0, -1,  0, -2,  0,  0,  0,  0,  0,  0,
                    -1,  0, -1,  0, -3, -1, -1,  0,  0, -3,
                     0, -2, -1, -3,  0,  0,  0,  0, -2, -3,
                    -2, -1, -1, -1, -2, -3, -1,  0, -2, -3,
                     0 ],

                  100 ],

# fase 5
             5: [ [  R,  L,  L,  I,  X,  I,  I,  L,  X,  L,
 	             L,  L,  I,  I,  I,  L,  I,  L,  I,  L,
	             L,  L,  I,  L,  L,  I,  L,  L,  I,  L,
	             I,  I,  I,  I,  L,  L,  L,  I,  L,  L,
	             L,  L,  I,  L,  L,  I,  X,  L,  L,  L,
	             0,  L,  L,  L,  I,  L,  0,  X,  L,  F],

                  [ 11, 12, 22, 21, 31, 41, 42, 52, 53, 43,
                    33, 23, 13,  3,  4,  5, 15, 25, 24,	34,
                    44, 45, 35, 36, 26, 16, 17, 18, 28, 29,
                    30, 40, 39, 49, 50 ],

                  [ -1, -3,  0, -2,  0, -1, -3, -1,  0,  0,
                     0,  0,  0, -2, -1,  0,  0,  0, -2,  0,
                    -1,  0, -2,  0,  0, -2, -1, -3, -1, -1,
                    -3,  0, -2, -1, -3 ],

                  100 ],
        
# fase 6
             6: [ [  R,  L,  I,  I,  X,  I,  I,  L,  X,  L,
	             L,  L,  I,  I,  I,  L,  0,  L,  I,  L,
	             L,  L,  I,  I,  L,  I,  L,  L,  I,  L,
	             I,  I,  L,  I,  L,  L,  L,  I,  L,  L,
	             L,  L,  I,  L,  L,  I,  X,  L,  L,  L,
	             0,  L,  L,  L,  I,  L,  0,  X,  L,  F],

                  [ 11, 12, 22, 21, 31, 41, 42, 52, 53, 43,
                    33, 34, 35, 45, 44, 54, 55, 56, 46,	47,
                    37, 27, 26, 25, 15,  5,  6,  7,  8, 18,
                    19, 20, 30, 29, 28, 38, 48, 49, 39, 40,
                    50 ],

                  [ -1, -3,  0, -2,  0, -1, -3, -1,  0,  0,
                    -2, -1, -3,  0, -2, -1, -1,  0,  0, -2,
                     0, -3, -1, -1,  0,  0, -1, -1, -3, -1,
                    -1, -3,  0, -1, -2,  0, -1,  0, -2, -3,
                     0 ],

                  100 ],

# fase 7
             7: [ [  R,  L,  L,  I,  X,  I,  I,  L,  X,  L,
                     L,  L,  X,  I,  I,  L,  I,  L,  I,  L,
	             L,  L,  0,  L,  L,  I,  L,  L,  I,  L,
	             I,  I,  X,  I,  L,  L,  L,  I,  L,  L,
	             L,  L,  L,  L,  L,  I,  X,  L,  L,  L,
	             0,  L,  L,  L,  I,  L,  0,  X,  L,  F],

                  [  0, 11, 12, 22, 21, 31, 41, 42, 52, 53,
                    43, 44, 34, 24, 25, 35, 36, 26, 16, 17,
                    18, 28, 27, 37, 38, 39, 49, 50 ],

                  [ -1, -3,  0, -2,  0, -1, -3, -1,  0, -2,
                     0,  0, -2, -3, -1,  0,  0, -2, -1, -3,
                     0, -2, -1, -1, -3, -1, -3, -1],

                  100 ]

                  }
